package cl.utfsm.isw.mecanico.delegates;

import java.rmi.RemoteException;
import java.util.Properties;

import javax.naming.Context;
import javax.naming.InitialContext;
import javax.rmi.PortableRemoteObject;

import cl.utfsm.isw.mecanico.beans.usuario.Usuario;
import cl.utfsm.isw.mecanico.to.UsuarioTO;

public class UsuarioDelegate {

	private Usuario usuario;
	
	public UsuarioDelegate() throws RemoteException {
		System.out.println("[UsuariosDelegate][UsuariosDelegate] Ingreso al metodo.");
		
	    Properties props = new Properties();  
        props.put(Context.INITIAL_CONTEXT_FACTORY,"weblogic.jndi.WLInitialContextFactory");  
        props.put(Context.PROVIDER_URL,"t3://127.0.0.1:7001");
		
		System.out.println("[UsuariosDelegate][UsuariosDelegate] Propiedades de contexto JNDI seteadas.");
		
		try{

			Context ctx = new InitialContext(props);  
			System.out.println("[UsuariosDelegate][UsuariosDelegate] Contexto JNDI Obtenido.");
			
			Object ref = ctx.lookup("UsuarioBean#"+Usuario.class.getName());  
			System.out.println("[UsuariosDelegate][UsuariosDelegate] Obtenida referencia al EJB Usuario.");
			
			usuario = (Usuario)PortableRemoteObject.narrow(ref, Usuario.class);  
			
		}catch(Exception ex){
			System.out.println(ex.toString());
		}
	}
	
	
	public UsuarioTO obtenerUsuario(Long rut, String password) throws Exception{
		System.out.println("[UsuarioDelegate][obtenerUsuario] Obteniendo Metodo.");
        return usuario.obtenerUsuario(rut, password);
	}
}
